package com.qdhh.enrollment.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 小程序用户实体类 - 对应students表（符合文档设计）
 * 包含身份认证相关字段
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("students")
public class Student {

    @TableId(value = "id", type = IdType.INPUT)
    private String id; // 微信openid（主键）

    @TableField("nick")
    private String nick; // 微信昵称

    @TableField("avatar")
    private String avatar; // 头像

    @TableField("union_id")
    private String unionId; // 微信UnionID（可选）

    @TableField("phone")
    private String phone; // 手机号

    @TableField("student_no")
    private String studentNo; // 学号（用于身份认证，可为NULL）

    @TableField("status")
    private Integer status; // 状态（1-正常，0-禁用）

    @TableField("identity_verified")
    private Integer identityVerified; // 身份认证状态（0-未认证，1-已认证）

    @TableField("identity_verified_at")
    private LocalDateTime identityVerifiedAt; // 认证时间

    @TableField("identity_verify_method")
    private String identityVerifyMethod; // 认证方式

    @TableField("identity_verify_remark")
    private String identityVerifyRemark; // 认证备注

    @TableField("deleted")
    private Integer deleted; // 软删除

    @TableField("version")
    private Integer version; // 乐观锁版本号

    @TableField("created_at")
    private LocalDateTime createdAt; // 创建时间

    @TableField("updated_at")
    private LocalDateTime updatedAt; // 更新时间
}

